/*
   Copyright (c) Microsoft Corp.  All rights reserved.                 
*/

//////////////////////////////////////////////////////////
// Errors
//////////////////////////////////////////////////////////

//
//  Values are 32 bit values laid out as follows:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//  +---+-+-+-----------------------+-------------------------------+
//  |Sev|C|R|     Facility          |               Code            |
//  +---+-+-+-----------------------+-------------------------------+
//
//  where
//
//      Sev - is the severity code
//
//          00 - Success
//          01 - Informational
//          10 - Warning
//          11 - Error
//
//      C - is the Customer code flag
//
//      R - is a reserved bit
//
//      Facility - is the facility code
//
//      Code - is the facility's status code
//
//
// Define the facility codes
//
#define MOCK10_FACILITY_CLIENT           0x19A


//
// Define the severity codes
//
#define MOCK10_STATUS_SEVERITY_SUCCESS   0x0
#define MOCK10_STATUS_SEVERITY_ERROR     0x3


//
// MessageId: MOCK10_E_TOO_FEW_TARGET_FUNCTIONS_FOUND
//
// MessageText:
//
// The specified target function query returned less functions than expected.  Update your query or the number of functions expected.
//
#define MOCK10_E_TOO_FEW_TARGET_FUNCTIONS_FOUND ((HRESULT)0xC19A0001L)

//
// MessageId: MOCK10_E_TOO_MANY_TARGET_FUNCTIONS_FOUND
//
// MessageText:
//
// The specified target function query returned more functions than expected.  Update your query or the number of functions expected.
//
#define MOCK10_E_TOO_MANY_TARGET_FUNCTIONS_FOUND ((HRESULT)0xC19A0002L)

//
// MessageId: MOCK10_E_TARGET_FUNCTION_QUERY_FAILED
//
// MessageText:
//
// Failed to find any functions that match the specified query.
//
#define MOCK10_E_TARGET_FUNCTION_QUERY_FAILED ((HRESULT)0xC19A0003L)

//
// MessageId: MOCK10_E_FUNCTION_SIGNATURE_MISMATCH
//
// MessageText:
//
// The mock and target functions do not have matching function signatures.  Check the number and types of parameters, and the calling conventions for each function.
//
#define MOCK10_E_FUNCTION_SIGNATURE_MISMATCH ((HRESULT)0xC19A0004L)

//
// MessageId: MOCK10_E_TARGET_FUNCTION_TOO_SMALL
//
// MessageText:
//
// The target function is not larget enough to be mocked, or you are running under a debugger with a breakpoint set at the start of the target function.
//
#define MOCK10_E_TARGET_FUNCTION_TOO_SMALL ((HRESULT)0xC19A0005L)

//
// MessageId: MOCK10_E_PRIVATE_FUNCTION_SYMBOL_NOT_FOUND
//
// MessageText:
//
// Failed to locate a private function symbol for the specified function.
//
#define MOCK10_E_PRIVATE_FUNCTION_SYMBOL_NOT_FOUND ((HRESULT)0xC19A0006L)

//
// MessageId: MOCK10_E_INVALID_FILTER_STRING
//
// MessageText:
//
// An error occurred while parsing the mock filter string.  Please check its syntax.
//
#define MOCK10_E_INVALID_FILTER_STRING   ((HRESULT)0xC19A0007L)

//
// MessageId: MOCK10_E_FILTER_PARAMETER_NAME_NOT_FOUND
//
// MessageText:
//
// The parameter name specified in the mock filter was not found on the target function.  Please check to ensure that it is spelled correctly, and that it wasn't stripped out by linker optimization.
//
#define MOCK10_E_FILTER_PARAMETER_NAME_NOT_FOUND ((HRESULT)0xC19A0008L)

//
// MessageId: MOCK10_E_UNSUPPORTED_SYMBOL_TYPE
//
// MessageText:
//
// The symbol found is not currently supported by the Mock10 framework.  A common cause of this error is attempting to mock a virtual method without the use of private symbols.
//
#define MOCK10_E_UNSUPPORTED_SYMBOL_TYPE ((HRESULT)0xC19A0009L)

//
// MessageId: MOCK10_E_INVALID_BASE_CLASS_SPECIFIED
//
// MessageText:
//
// The class containing the member function being mocked does not implement the specified base class.
//
#define MOCK10_E_INVALID_BASE_CLASS_SPECIFIED ((HRESULT)0xC19A000AL)

//
// MessageId: MOCK10_E_LEGACY_DEBUGGER
//
// MessageText:
//
// Please update your debugger.  The version of dbghelp.dll that is loaded into the process does not support the symbols found for the specified function.  This usually occurs when a legacy version of dbghelp.dll attempts to read optimized symbols.  
//
#define MOCK10_E_LEGACY_DEBUGGER         ((HRESULT)0xC19A000BL)

//
// MessageId: MOCK10_E_VARIABLE_QUERY_FAILED
//
// MessageText:
//
// Failed to find any variables that match the specified query.
//
#define MOCK10_E_VARIABLE_QUERY_FAILED   ((HRESULT)0xC19A000CL)

//
// MessageId: MOCK10_E_TOO_MANY_VARIABLES_FOUND
//
// MessageText:
//
// Too many variables were found for the specified query; try using a more specific query.
//
#define MOCK10_E_TOO_MANY_VARIABLES_FOUND ((HRESULT)0xC19A000DL)

//
// MessageId: MOCK10_E_PRIVATE_VARIABLE_SYMBOL_NOT_FOUND
//
// MessageText:
//
// Failed to locate a private symbol for the specified variable.
//
#define MOCK10_E_PRIVATE_VARIABLE_SYMBOL_NOT_FOUND ((HRESULT)0xC19A000EL)

//
// MessageId: MOCK10_E_VARIABLE_TYPE_MISMATCH
//
// MessageText:
//
// The type of the target variable did not match the type requested.
//
#define MOCK10_E_VARIABLE_TYPE_MISMATCH  ((HRESULT)0xC19A000FL)

//
// MessageId: MOCK10_E_INTERNAL_THUNK_INCONSISTENCY
//
// MessageText:
//
// The Mock10 thunk is inconsistent with the fix-up code.
//
#define MOCK10_E_INTERNAL_THUNK_INCONSISTENCY ((HRESULT)0xC19A0010L)

//
// MessageId: MOCK10_E_TARGET_PROCESS_NOT_FOUND
//
// MessageText:
//
// The specified process(es) are not currently running in the specified session.
//
#define MOCK10_E_TARGET_PROCESS_NOT_FOUND ((HRESULT)0xC19A0011L)

//
// MessageId: MOCK10_E_TOO_MANY_TARGET_PROCESSES_FOUND
//
// MessageText:
//
// The specified process query returned more processes than expected.  Specify allowMultiple to allow more than one target process.
//
#define MOCK10_E_TOO_MANY_TARGET_PROCESSES_FOUND ((HRESULT)0xC19A0012L)

//
// MessageId: MOCK10_E_INVALID_TARGET_PROCESS
//
// MessageText:
//
// The specified target process is not currently running.
//
#define MOCK10_E_INVALID_TARGET_PROCESS  ((HRESULT)0xC19A0013L)

//
// MessageId: MOCK10_E_MISMATCHED_DATA_TYPE
//
// MessageText:
//
// The type of data currently stored in the external mock shared data map does not match the data type specified.
//
#define MOCK10_E_MISMATCHED_DATA_TYPE    ((HRESULT)0xC19A0014L)

